package com.zmn.oms.third.zhimi;

import com.zmn.oms.common.constant.OrderConsts;

import java.util.HashMap;
import java.util.Map;
import java.util.Optional;

/**
 * 类描述：
 *
 * @author lhl
 * @date 2020/04/30 16:46
 */
public final class ZhimiMapper {
    private static final Map<String, Integer> AC_MAP = new HashMap<>();
    private static final Map<String, Integer> TOILET_MAP = new HashMap<>();

    static {
        AC_MAP.put("1", 10010); // 维修
        AC_MAP.put("2", 10010); // 退机
        AC_MAP.put("3", 10010); // 换机
        AC_MAP.put("4", 10010); // 检测
        AC_MAP.put("7", 10010); // 安装
        AC_MAP.put("8", 10010); // 勘测

        TOILET_MAP.put("1", 11364); // 维修
        TOILET_MAP.put("2", 11365); // 退机
        TOILET_MAP.put("3", 11366); // 换机
        TOILET_MAP.put("4", 11367); // 检测
        TOILET_MAP.put("7", 11368); // 安装
        TOILET_MAP.put("8", 11369); // 勘测
    }

    /**
     * 获取啄木鸟产品ID
     * @param zhimiProductName
     * @param serviceType
     * @return
     */
    public static Integer getProductId(String zhimiProductName, Integer serviceType) {
        boolean isAC = isAC(zhimiProductName);

        Integer productId = null;
        if (isAC) {
            productId = AC_MAP.get(String.valueOf(serviceType));
        }
        else {
            productId = TOILET_MAP.get(String.valueOf(serviceType));
        }

        return Optional.ofNullable(productId).orElse(OrderConsts.CHANNEL_DISABLED_PRODUCT_ID);
    }

    /**
     * 是否是空调订单
     * @param zhimiProductName
     * @return
     */
    public static boolean isAC(String zhimiProductName) {
        String productName = Optional.ofNullable(zhimiProductName).orElse("");
        return productName.contains("空调");
    }

    /**
     * 私有构造器，防止外部实例化
     */
    private ZhimiMapper() {}
}
